/**
 * 
 */
package ads.engenharia.manager;

import ads.engenharia.bl.DisciplineBO;
import ads.engenharia.bl.ProfessorBO;
import ads.engenharia.dal.DisciplineDAO;
import ads.engenharia.dal.DisciplineProfessorDAO;
import ads.engenharia.dal.DisciplineScheduleDAO;
import ads.engenharia.dal.ProfessorCompetenceDAO;
import ads.engenharia.dal.ProfessorDAO;
import ads.engenharia.dal.ProfessorScheduleDAO;

/**
 * @author Lanedraex
 *
 */
public class DALManager {

	private static ProfessorDAO _professorDAO = new ProfessorDAO();
	private static ProfessorCompetenceDAO _professorCompetenceDAO = new ProfessorCompetenceDAO();
	private static ProfessorScheduleDAO _professorScheduleDAO = new ProfessorScheduleDAO();
	private static DisciplineBO _disciplineBO = new DisciplineBO();
	private static DisciplineDAO _disciplineDAO = new DisciplineDAO();
	private static DisciplineScheduleDAO _disciplineScheduleDAO = new DisciplineScheduleDAO();
	private static DisciplineProfessorDAO _disciplineProfessorDAO = new DisciplineProfessorDAO();
	private static ProfessorBO _professorBO = new ProfessorBO();

	private static DALManager _instance = null;

	private DALManager() {

		// _professorDAO = new ProfessorDAO();
		// _professorCompetenceDAO = new ProfessorCompetenceDAO();
		// _professorScheduleDAO = new ProfessorScheduleDAO();
		// _disciplineBO = new DisciplineBO();
		// _disciplineDAO = new DisciplineDAO();
		// _disciplineScheduleDAO = new DisciplineScheduleDAO();
		// _disciplineProfessorDAO = new DisciplineProfessorDAO();
		// _professorBO = new ProfessorBO();
	}

	public static DALManager Instance() {

		if (_instance == null) {
			_instance = new DALManager();
		}

		return _instance;
	}

	public ProfessorDAO professorDAO() {

		return _professorDAO;
	}

	/**
	 * @return the _professorCompetenceDAO
	 */
	public ProfessorCompetenceDAO professorCompetenceDAO() {
		return _professorCompetenceDAO;
	}

	/**
	 * @return the _professorScheduleDAO
	 */
	public ProfessorScheduleDAO professorScheduleDAO() {
		return _professorScheduleDAO;
	}

	/**
	 * @return the _disciplineBO
	 */
	public DisciplineBO disciplineBO() {
		return _disciplineBO;
	}

	/**
	 * @return the _disciplineDAO
	 */
	public DisciplineDAO disciplineDAO() {
		return _disciplineDAO;
	}

	/**
	 * @return the _disciplineScheduleDAO
	 */
	public DisciplineScheduleDAO disciplineScheduleDAO() {
		return _disciplineScheduleDAO;
	}

	/**
	 * @return the _disciplineProfessorDAO
	 */
	public DisciplineProfessorDAO disciplineProfessorDAO() {
		return _disciplineProfessorDAO;
	}

	/**
	 * @return the _professorBO
	 */
	public ProfessorBO professorBO() {
		return _professorBO;
	}

}
